[レポート]オンラインゲームをつくるために考えるべき10のこと Lv. 100 #AmazonGameTech #AmznGameTechJP
オンラインゲームをつくるために考えるべき10のこと Lv. 100
2019年11月20日(水)にアマゾン目黒オフィスでアマゾンウェブサービス社の自社イベント「Amazon Game Developers Conference」が開催されました。
本記事は、セッション「オンラインゲームをつくるために考えるべき10のこと Lv. 100」をレポートします。
スピーカー
アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 吉田 英世氏
セッション概要
オンラインゲームはかつてない広がりを見せており、マルチプラットフォーム、グローバル展開、マルチプレイ、リアルタイムなどさまざまな要件を満たすためには、これまで以上にたくさんの技術をうまく活用する必要があります。AWSにはオンラインゲームを支える多くのサービスがあり、すでにたくさんの利用実績があります。本セッションでは、プロデューサー/ディレクターの方々向けに、実際のAWSの利用方法を例に挙げてオンラインゲームをつくるために抑えていただきたいポイントを解説します。
レポート
- グローバルに展開されたクロスプラットフォームのマルチプレイオンラインゲームに対してAWSで構築/運用するための10のポイントを解説
- ゲームに関係する非エンジニア向け
- マルチプレイヤーオンラインゲームの構成:共通API/チャット/マッチメイキング/ゲームサーバー群
- 既にこの分野で成功された企業様もAWSを活用している
- PLAYER UNKNOWNS' BATTLE GROUNDS - PUBG様
- Fortnite - Epic Games様:800万人の同時接続を実現した
はじめに
- AWSグローバルインフラストラクチャ
- 22のリージョン/69のアベイラビリティゾーン/200のPOPによって構成されている
- AWSのグローバルネットワークで接続されている
- ネットワークの揺らぎが小さい
- AWSのサービス:165を超えるサービス/ゲームに特化したサービス
- 特別な業界に特化したサービスはゲーム業界敷かない
1.クロスプラットフォーム
- プラットフォーム毎に独立:A社向けタイトル/B社向けタイトル/PC向け/モバイル向け
- クロスプラットフォームを構成する必要がある
- グローバルインフラストラクチャを活用する
2.リアルタイム性
- ゲーム性によってリアルタイム要件が異なる:ターン性カードゲーム/リアルタイムFPSゲーム
- リアルタイムゲームの方がデータ量も多く、リアルタイム性も高い
- リアルタイム性の向上施策:通信を高速化する/許容できるレイテンシ内でマッチメイクする/ユーザに近いロケーションにゲームサーバーを配置する/フレームレートを下げる、画面サイズを縮小する
- リージョン数とレイテンシの関係:プレイヤーにより近いところに置くとレイテンシが低くなる
- 最新データでは中央値41ms:2018/5/1-10有る顧客と236,000人のプレイヤーで9のリージョンのサーバーに接続したときのレイテンシ
- AWS Global Accelerator:ゲームに重要なレイテンシの向上ジッター(揺らぎ)を改善
- AWS Global Acceleratorの効果:米国から日本、東南アジアなど繋いだ場合、通常時より明らかに改善
3.通信方式
- P2P vs 専用サーバ
- P2Pはサーバが不要
- 専用サーバーは通信が安定し、障害対応が簡単で、チートに強い
- メリットデメリット、ゲーム性に応じて考える
- For HonorはP2Pから専用サーバ(GameLift)へ移行
- ホスト側がレイテンシ優位になる問題があり、ホストが抜けると中断などがあった
- 専用サーバににより中断が無くなり、ネットワークの安定性が向上された
4.全体構成
- 地域別に独立したシステムを配置
- 特に中国リージョン
- レイテンシーがシビアなゲームに効果的
- Amazon GameLift:マルチプレイオンラインゲームの開発を加速し、運用コストも削減
- マッチメイクや世界中のリージョンへの管理をマネージドで提供する
- Amazon GameLiftへ送られるリクエストにはプレイヤーのレイテンシー条件なども含まれる
- 条件を考慮して、それぞれのプレイヤーがFleetと呼ばれるサーバー群に振られる
- 1から作ると大変
5.コスト最適化
- AWSが継続的に取り組んでいるもの/お客様主体で継続的に取り組んで頂くもの
- AWSによる値下げ(2006年から76回以上)・コスト削減提案
- 利用状況に応じたリソース配分/オペレーションの自動化/各種料金プランの適用
- EC2インスタンス向け2つのおすすめプラン:Saving Plans/スポットインスタンス
- Saving Plans:1年もしくは3年で1時間当たりの利用額をコミット
- Saving Plans:購入額からリージョンやインスタンスファミリーのEC2インスタンス、Fargate等幅広い対象に適用される"Compute"プラン
- Saving Plans:特定のリージョンとインスタンスファミリーのEC2インスタンスに適用される"EC2インスタンス"プラン
- Saving Plans:全額前払いもしくは一部前払いが可能
- スポットインスタンス:EC2インスタンスの空きを効果的に使う最大90%オフ
- 事例:ディー・エヌ・エー様:ステートレスのスポット利用率100%/ステートレスサーバーのコスト60%削減/スポット中断によるサービス停止無し
6.セキュリティ
- AWSにとってセキュリティは最優先事項:堅牢なセキュリティを証明する各国の第三者認証/認定の取得
- グローバル展開でも非常に重要
- AWSを使えば認証は既にクリアしているというのは武器になる
- DDos対策の課題:オンプレでは実装が困難/体制の整備が必要
- AWS Shield:マネージドのDDoSの保護サービス - Standard(無料)/Advanced(有料)
- 機械学習によるチート対策:異常なプレイを行っているユーザをリアルタイムに検知
- 行動データ - 機械学習のモデルを作成(学習) - 機械学習のモデルで判定(推論) - プレイヤー
- ユーザーが行動している以外の値を外れ値として処理する
7.IDの統合管理
- プレイヤーとIDの関係
- ゲームプラットフォームに関係なくユニークなIdを持つ必要がある
- 分析に使ってレコメンデーション・キャンペーンへ活用する事が出来る
8.データ活用
- 現在のゲームにおけるログ活用
- DAUや課金などメトリクスを確認
- 問い合わせをベースにログを検索
- AWSのゲーム分析:いち早く分析データを取得し運営に反映することが重要
- 自身で構築せず機械学習で需要予測をする事が出来る
- バッチ分析ではQuicksightが使いやすい
- ニアリアルタイム分析
- Epic Games のデータレイク
9.サービスレベル目標(SLO)
- サービスレベル目標(SLO)をしっかり作る
- サービスレベル指標(SLI)⇒ SLO
- SLOを設定することのメリット:曖昧な要求では無くみんなが共有する数値目標を設定する
10.Amazonによるご支援
- 技術サポート/ビジネスサポートを上手に使う
- 技術サポート:ソリューションアーキテクトによる技術相談・無償/有償のオンライントレーニング・有償のクラスルームトレーニング
- ビジネスサポート:Amazon.co.jpによるビデオゲーム販売・アマゾンアプリストアによるモバイルゲームの販売・Twitch活用
まとめ
- クロスプラットフォームのマルチプレイ音ライゲームはAWSを使って低リスクで安全に直ぐにグローバル展開できる
- ゲーム開発に集中
- Amazonは支援する
10のTipsということもあり、基本的な内容と、新サービスSaving Plans、ゲーム特化サービスが混ざって、内容としては多いですが、良い味付けの仕上がりになっていたかと思います。